import akshare as ak
import pandas as pd

"""
如何计算支撑位和阻力位
  我们今天使用的是一种经典的计算方法，叫做枢轴点（Pivot Point）计算法。它基于前一个交易日的高价、低价和收盘价，计算出枢轴点以及多个级别的支撑位和阻力位。计算公式如下
  1.枢轴点（Pivot Point, P）： P = (高点 + 低点 + 收盘价) / 3
  2.第一阻力位（R1）：R1 = 2 * P - 低点  
  3.第一支撑位（S1）： S1 = 2 * P - 高点  
  4.第二阻力位（R2）： R2 = P + (高点 - 低点)  
  5.第二支撑位（S2）： S2 = P - (高点 - 低点) 
  6.第三阻力位（R3）： R3 = P + 2 * (高点 - 低点) 
  7.第三支撑位（S3）：S3 = P - 2 * (高点 - 低点)  
  通过这些公式，我们可以预测当天股票价格的波动范围。支撑位代表价格可能获得支撑并反弹的点，而阻力位则代表价格可能遇到压力而回落的点。

如何在股票分析中应用这些点位
  支撑位和阻力位是交易中的重要参考。当价格接近支撑位时，可能意味着价格下跌动力减弱，适合考虑买入。当价格接近阻力位时，可能表示上涨乏力，可以考虑卖出。
  此外，这些点位也是设置止损和止盈的良好位置，帮助我们有效控制风险。
"""

#获取股票历史数据
stock = input('请输入股票代码：')
df = ak.stock_zh_a_hist(stock,period= "daily", start_date="20241001" , end_date='20241203')

#提取前一交易日的数据
last_day = df.iloc[-1]
print(last_day)
high = last_day['最高']
low = last_day['最低']
close = last_day['收盘']

#计算枢轴点和支撑/阻力位
pivot = (high + low + close) / 3
r1 = 2* pivot - low
s1 = 2* pivot - high
r2 = pivot + (high - low)
s2 = pivot - (high - low)
r3 = pivot + 2* (high - low)
s3 = pivot - 2* (high - low)


print(f'枢轴点（P）：{pivot:.2f}')
print(f'第一阻力位（R1）：{r1:.2f}')
print(f'第一支撑位（S1）：{s1:.2f}')
print(f'第二阻力位（R2）：{r2:.2f}')
print(f'第二支撑位（S2）：{s2:.2f}')
print(f'第三阻力位（R3）：{r3:.2f}')
print(f'第三支撑位（S3）：{s3:.2f}')